home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / viewers / polyview / polyvw31.lha / Polyview3.1 / new / netdata.c < prev    next >
C/C++ Source or Header  |  1993-07-30  |  2KB  |  138 lines

  1. /*
  2.  * Copyright (C) 1992, Board of Trustees of the University of Illinois.
  3.  *
  4.  * Permission is granted to copy and distribute source with out fee.
  5.  * Commercialization of this product requires prior licensing
  6.  * from the National Center for Supercomputing Applications of the
  7.  * University of Illinois.  Commercialization includes the integration of this 
  8.  * code in part or whole into a product for resale.  Free distribution of 
  9.  * unmodified source and use of NCSA software is not considered 
  10.  * commercialization.
  11.  *
  12.  */
  13. #if ! defined(lint) && ! defined(LINT)
  14. static char rcs_id[] = "$Id: netdata.c,v 1.2 93/07/13 16:31:47 gbourhis Exp $";
  15. #endif
  16.  
  17.  
  18. #include <stdlib.h>
  19. #include <string.h>
  20. #include "netdata.h"
  21. #include "list.h"
  22.  
  23. static List dataList;
  24.  
  25. InitData()
  26. {
  27.     if (!(dataList = ListCreate()))
  28.         return(0);
  29.  
  30.     return(1);
  31. }
  32.  
  33.  
  34. Data *DataNew()
  35. {
  36.     Data *d;
  37.     if (!(d = (Data *)calloc(1,sizeof(Data))))
  38.       {
  39.         ErrMesg("Out of Memory\n");
  40.       }
  41.     else
  42.       {
  43.         d->label = d->associated = (char *) 0;
  44.         d->group = (Data *) 0;
  45.         d->magicPath = (VdataPathElement **) 0;
  46.         d->nodeName = d->fields = (char *) 0;
  47.  
  48.         d->expandX = d->expandY = 1.0;
  49.       }
  50.     
  51.     return(d);
  52. }
  53.  
  54. void DataDestroy(d)
  55. Data *d;
  56. {
  57.     (void)ListDeleteEntry(dataList,d);
  58.     if (d->label) 
  59.         FREE(d->label);
  60.     if (d->data) 
  61.         FREE(d->data);
  62.     FREE(d);
  63. }
  64.  
  65. void DataAddEntry(d)
  66. Data *d;
  67. {
  68.     ListAddEntry(dataList,d);
  69. }
  70.  
  71.  
  72. Data *DataSearchByLabel(s)
  73. char *s;
  74. {
  75. Data *d;
  76.  
  77.     d = (Data *) ListHead(dataList);
  78.     while (d) {
  79.         if (!strcmp(s,d->label)) {
  80.             return(d);
  81.             }
  82.         d = (Data *) ListNext(dataList);
  83.         }
  84.     return( (Data *) 0);
  85. }
  86.  
  87. Data *DataSearchByLabelAndDOT(s,dot)
  88. char *s;
  89. int dot;    /*data object type */
  90. {
  91. Data *d;
  92.  
  93.     d = (Data *) ListHead(dataList);
  94.     while (d) {
  95.         if ((!strcmp(s,d->label)) && (d->dot == dot)) {
  96.             return(d);
  97.             }
  98.         d = (Data *) ListNext(dataList);
  99.         }
  100.     return( (Data *) 0);
  101. }
  102.  
  103. Data *DataSearchByLabelAndDOTAndDOST(s,dot,dost)
  104. char *s;
  105. int dot;    /*data object type */
  106. int dost;    /* data object sub type */
  107. {
  108. Data *d;
  109.  
  110.     d = (Data *) ListHead(dataList);
  111.     while (d) {
  112.         if ((!strcmp(s,d->label)) && (d->dot == dot) 
  113.                 && (d->dost == dost)) {
  114.             return(d);
  115.             }
  116.         d = (Data *) ListNext(dataList);
  117.         }
  118.     return( (Data *) 0);
  119. }
  120.  
  121. int DataInList(inList)
  122. /* is this Data set in the list */
  123. Data *inList;
  124. {
  125. Data *d;
  126.         d = (Data *) ListHead(dataList);
  127.         while (d) {
  128.         if (d == inList) {
  129.             return(1);
  130.             }
  131.             d = (Data *) ListNext(dataList);
  132.         }
  133.     return(0);
  134. }
  135.  
  136.  
  137.  
  138.